/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Dato;

import Objetos.Usuario;
import Utilitarios.Conexion;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author Omar Heráclides
 */
public class DUsuario {

    static ResultSet rs = null;
    static Statement st = null;

    public static ResultSet Select(String query) throws SQLException {

        Conexion conex = new Conexion();
        st = conex.ObtenerConexion();
        rs = st.executeQuery(query);
        return rs;
    }

    public static void Insert(String query) throws SQLException {

        Conexion conex = new Conexion();
        st = conex.ObtenerConexion();
        st.execute(query);
        st.close();
    }

    public static void UpDate(String query) throws SQLException {

        Conexion conex = new Conexion();
        st = conex.ObtenerConexion();
        st.execute(query);
        st.close();
    }

    public boolean VerificarUsuario(String usuario, String contraseña) throws SQLException {
        String cadena = "";
        cadena = "select count(*) from usuario where usuario='" + usuario + "' and contrasena='" + contraseña + "'";
        ResultSet rs;
        rs = Select(cadena);

        while (rs.next()) {
            System.out.println("Verifica=" + usuario);
            if (Integer.parseInt(rs.getString(1)) > 0) {
                return true;
            }
        }
//           

        return false;
    }

    public String ObtenerDNI(String dni) throws SQLException {
        String cadena = "";
        cadena = "select idpersona from persona where dni='" + dni + "'";
        ResultSet rs;
        rs = Select(cadena);

        while (rs.next()) {

            return rs.getString(1);
        }
        return "";
    }

    public void AgregarUsuario(Usuario objUsuario) throws SQLException {
        String comando;
        comando = "insert INTO usuario (usuario, contrasena,estado,idpersona) values ";
        comando = comando + "('" + objUsuario.getNombreUsuario() + "','" + objUsuario.getContraseña() + "'," + objUsuario.getEstado() + "," + objUsuario.getIdPersona() + ")";
        // JOptionPane.showMessageDialog(null, comando, "Información", JOptionPane.INFORMATION_MESSAGE);
        Insert(comando);
        comando = "select idusuario from usuario where usuario='" + objUsuario.getNombreUsuario() + "'";
        ResultSet rs;
        rs = Select(comando);
        while (rs.next()) {
            objUsuario.setIdUsuario(rs.getString(1));
        }
    
        comando = "UPDATE rol SET idusuario=" + objUsuario.getIdUsuario() + "";
        comando = comando + " WHERE nombre='" + objUsuario.getRol() + "'";
        JOptionPane.showMessageDialog(null, comando, "Información", JOptionPane.INFORMATION_MESSAGE);
        UpDate(comando);
    }

    public void ModificarUsuario(Usuario objUsuario) throws SQLException {
        String comando;
        comando = "UPDATE usuario SET usuario='" + objUsuario.getNombreUsuario() + "', contrasena='" + objUsuario.getContraseña() + "'";
        comando = comando + " WHERE idpersona=" + objUsuario.getIdUsuario() + "";
        //     JOptionPane.showMessageDialog(null, comando, "Información", JOptionPane.INFORMATION_MESSAGE);                                             
        UpDate(comando);
        
        
         comando = "UPDATE rol SET idusuario=" + objUsuario.getIdUsuario() + "";
        comando = comando + " WHERE nombre=" + objUsuario.getRol() + "";
             JOptionPane.showMessageDialog(null, comando, "Información", JOptionPane.INFORMATION_MESSAGE);                                             
        UpDate(comando);
    }

    public DefaultTableModel MostrarUsuarios() throws SQLException {
         System.out.println("entrooo");
        DefaultTableModel dtm = new DefaultTableModel();
         String titulos[] = {"Nombre de Usuario", "Contraseña", "Rol"};
        dtm.setColumnIdentifiers(titulos);

        Object datos[] = new Object[3];
        ResultSet rs;
        rs = Select("select * from usuario");


        while (rs.next()) {
            datos[0] = (String) rs.getString(1);
            datos[1] = rs.getString(2);
            datos[2] = rs.getString(3);
            dtm.addRow(datos);
            System.out.println("mostrar" + datos[2]);


        }
        return dtm;
    }
}
